home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2000 October
/
CHIP Turkiye Ekim 2000.iso
/
prog
/
naps
/
04
/
setup.exe
/
Gnucleus
/
AnimEffect.h
< prev
next >
Wrap
C/C++ Source or Header
|
2000-06-17
|
2KB
|
83 lines
// Written by SiGMan / iO UpG 13-04-2000
//
//
// AnimEffect.h: interface for the AnimEffect class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ANIMEFFECT_H__9AED4B93_0A83_4B4E_B6ED_1B3A133E2600__INCLUDED_)
#define AFX_ANIMEFFECT_H__9AED4B93_0A83_4B4E_B6ED_1B3A133E2600__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
enum AnimType {
AnimInit, AnimDraw, AnimErase, AnimTerm
};
struct AnimData
{
BOOL bOpen;
RECT rcScreen;
RECT rcWnd;
int iParameter;
int iAfterimages;
int iTotalSteps;
int iStep;
POINT ptRelRightTop;
POINT ptCenter;
HWND hWnd;
HDC hDC;
enum AnimType animType;
BYTE bBuffer[4000];
};
class AnimEffect
{
public:
enum EffectType {
Random=-1,
Spin=0,
Vortex,
ScatterGather,
Spike,
Fireworks
};
typedef BOOL (*EFFUNC)( AnimData * );
AnimEffect();
virtual ~AnimEffect();
void Setup( int iSteps, int iAfterimages, int iDelay = 10);
void Effect( EffectType effect );
void Open( const CRect &rcWnd );
void Close( const CRect &rcWnd );
private:
void Defaults();
void ChooseFunc();
void Animate( AnimData &animData );
private:
RECT m_rcScreen;
int m_iParameter;
int m_iAfterimages;
int m_iTotalSteps;
int m_iDelay;
EffectType m_Effect;
EFFUNC m_Func;
RECT m_rcWnd;
POINT m_ptRelRightTop;
POINT m_ptCenter;
HWND m_hWnd;
HDC m_hDC;
HPEN m_hPen;
};
#endif // !defined(AFX_ANIMEFFECT_H__9AED4B93_0A83_4B4E_B6ED_1B3A133E2600__INCLUDED_)